package com.amumu.drama.common.base.mapstruct.ext;

import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;

/**
 * LocalDate和毫秒级时间戳互转
 */
public interface LocalDateToLongMapping {

    /** 正向映射 */
    default Long localDateToLong(LocalDate dt) {
        if(dt == null){
            return null;
        }
        return dt.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();
    }

    /** 反向映射 */
    default LocalDate longToLocalDate(Long ts) {
        if(ts == null){
            return null;
        }
        return Instant.ofEpochMilli(ts).atZone(ZoneId.systemDefault()).toLocalDate();
    }
}
